package com.tql.test_13;
/*
* 双重检索（推荐使用，线程安全，效率高）
* */
public class LazyTest3 {
    //volatile关键字 ，防止指令重排
    private static volatile LazyTest3 lazyTest1;
    LazyTest3(){};
    public static LazyTest3 getInstance(){
        if(lazyTest1==null){
            //锁住类模板，同一个时刻只有一个线程获取锁然后创建对象，只执行一次即可，效率高
           synchronized (LazyTest3.class){
               if(lazyTest1==null){
                   lazyTest1=new LazyTest3();
               }
           }
        }
        return lazyTest1;
    }
}
